package com.quectel.core.module.device.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * @author ryan
 * @email ryan.ran@quectel.com
 * @date 2023/02/06 16:01
 */
@Data
@Schema
public class DeviceDynamicAttrDto implements Serializable {

    /**
     * 主键id
     */
    @Schema(description = "主键id")
    private Long id;

    /**
     * label标签 如：姓名
     */
    @Schema(description = "label标签 如：姓名")
    private String label;

    /**
     * 属性名称  如：name
     */
    @Schema(description = "属性名称  如：name")
    private String attr;

    /**
     * 提示语
     */
    @Schema(description = "提示语")
    private String placeholder;

    /**
     * 默认值
     */
    @Schema(description = "默认值")
    private String defaultValue;

    /**
     * 设备种类
     */
    @Schema(description = "设备种类")
    private Long deviceCategoryId;

    /**
     * 是否显示 1：显示 0.不显示
     */
    @Schema(description = "是否显示 1：显示 0.不显示")
    private Byte attrShow;

    /**
     * 是否必填 1是0否
     */
    @Schema(description = "是否必填 1是0否")
    private Byte required;

    /**
     * 单位
     */
    @Schema(description = "单位")
    private String unit;

    /**
     * 1布尔 2数值 3枚举 4文本 5日期 6时间 7日期和时间 8JSON
     */
    @Schema(description = "1布尔 2数值 3枚举 4文本 5日期 6时间 7日期和时间 8JSON")
    private Byte fieldType;

    /**
     * 字典值标识
     */
    @Schema(description = "字典值标识")
    private String fieldDictJson;

    /**
     * 文本长度 数据类型文本时必填
     */
    @Schema(description = "文本长度 数据类型文本时必填")
    private Integer textLimit;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;

    /**
     * 创建人ID
     */
    @Schema(description = "创建人ID")
    private String creator;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    private Date createTime;

    /**
     * 修改时间
     */
    @Schema(description = "修改时间")
    private Date editTime;

    /**
     * 更新者
     */
    @Schema(description = "更新者")
    private String editor;

    /************非数据库字段 start ************/

    /************非数据库字段 end **************/
}
